home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2010 April
/
PCWorld0410.iso
/
pluginy Firefox
/
524
/
524.xpi
/
chrome
/
mid.jar
/
content
/
midGetFFSearchPlugins.js
< prev
next >
Wrap
Text File
|
2009-10-29
|
3KB
|
100 lines
const mid_uuidlen = 36;
const mid_NS = "http://mid.mozdev.org/dictionaries";
const idstr = "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii";
function loadFFsearchEngines() {
var ccss = Components.classes["@mozilla.org/browser/search-service;1"];
if (ccss) {
var searchService = Components.classes["@mozilla.org/browser/search-service;1"].getService(Components.interfaces.nsIBrowserSearchService);
var searchEngines = searchService.getVisibleEngines({ });
importEngines(searchEngines);
}
return;
}
function getSearcParams(searchEngine, searchValue)
{
var searchSubmission = searchEngine.getSubmission(searchValue, null);
var postData = searchSubmission.postData ? searchSubmission.postData : null;
var searchUrl = searchSubmission.uri.spec;
var finalUrl = new String();
if (!searchValue)
{
var uri = Components.classes['@mozilla.org/network/standard-url;1']
.createInstance(Components.interfaces.nsIURI);
uri.spec = searchUrl;
searchUrl = uri.host;
}
// recommendation by Mat on AMO
for (var i = 0; i < searchUrl.length; i++) {
finalUrl += (searchUrl[i] == "+") ? "%20" : searchUrl[i];
}
return {searchUrl: finalUrl, postData: postData};
}
function importEngines(engines) {
var newdict;
while (eng = engines.shift()) {
newdict = document.createElementNS(mid_NS,"mid:dict");
popuplateWithArguments(eng,newdict);
document.getElementById("middicos").appendChild(newdict);
}
}
function popuplateWithArguments(eng,dict){
var searchParams = getSearcParams(eng, "XXX");
var enginame = eng.name.substring(0,mid_uuidlen);
dict.setAttribute("label", enginame);
dict.setAttribute("engine_name", enginame);
dict.setAttribute("dictid", (enginame + idstr).substring(0,mid_uuidlen));
dict.setAttribute("home", eng.searchForm);
dict.setAttribute("url", searchParams.searchUrl);
if (!searchParams.postData) {
dict.setAttribute("method", "GET");
} else {
dict.setAttribute("method", "POST");
dict.setAttribute("inputs", searchParams.postData);
}
dict.setAttribute("checked", "false");
dict.setAttribute("js", "enabled");
dict.setAttribute("special", "yes");
if (eng.iconURI) {
dict.setAttribute("fav", eng.iconURI.spec)
} else {
dict.setAttribute("fav","chrome://mid/skin/images/mid16.ico")
}
dict.setAttribute("type", getLocaleString("searchplugins.type"));
}
function getLocaleString(lsName)
{
var myprop =
Components.classes["@mozilla.org/intl/stringbundle;1"].
getService(Components.interfaces.nsIStringBundleService);
var mystrings = myprop.createBundle("chrome://mid/locale/searchplugins.properties");
return mystrings.GetStringFromName(lsName);
}
// var sp=getSearcParams(v[0],"XXX")
// sp.searchUrl
// http://www.google.com/search?q=XXX&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:hu-HU:official&client=firefox-a
// sp.postData
// null
// http://www.koders.com/javascript/fidE9B756690EE8433D8880C15D6F684F019CFF82ED.aspx?s=nsIBrowserSearchService#L231